package com.service.gmall.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.service.gmall.model.list.Goods;
import com.service.gmall.model.product.SkuImage;
import com.service.gmall.model.product.SkuInfo;
import com.service.gmall.model.to.SkuDetailsTo;

import java.math.BigDecimal;
import java.util.List;

/**
* @author alpha
* @description 针对表【sku_info(库存单元表)】的数据库操作Service
* @createDate 2022-08-23 10:15:19
*/
public interface SkuInfoService extends IService<SkuInfo> {
    /**
     * @param skuId
     * @description: 获取sku商品详情数据
     */
    SkuDetailsTo getSkuDetails(Long skuId);
    /**
     * @param skuId
     * @description: 查询商品的实时价格
     */
    BigDecimal getRealTimePrice(Long skuId);

    /**
     * sku保存
     * @param skuInfo
     */
    void saveSkuInfo(SkuInfo skuInfo);

    /**
     * 上架
     * @param skuId
     */
    void onsale(Long skuId);

    /**
     * 下架
     * @param skuId
     */
    void cancelSale(Long skuId);

    /**
     * 根据skuId查询sku基本信息
     * @param skuId
     * @return
     */
    SkuInfo getSkuInfo(Long skuId);

    /**
     * 获取sku的所有图片信息
     * @param skuId
     * @return
     */
    List<SkuImage> getDetailImages(Long skuId);

    /**
     * 获取所有的skuid
     * @return
     */
    List<Long> getAllSkuId();

    /**
     * 根据skuId查询商品
     * @param skuId
     * @return
     */
    Goods getGoodsBySkuId(Long skuId);
}
